Solid state drives (SSDs) have become popular storage devices in client, server, and enterprise environments. The increasing popularity of SSDs is partially due to significant performance benefits when compared to hard drives, coupled with rapidly improving price points. An SSD interface protocol specifies how a controller on an SSD receives commands for processing, and transmits data between a host and the SSD over a communication interface. To enable faster adoption and interoperability of SSDs connected to a host over a peripheral component interconnect express (PCIe) bus, industry participants have defined an SSD interface protocol known as the non-volatile memory express (NVMe) standard. NVMe includes a register programming interface, command set, and feature set definition. These NVMe features enable related companies and SSD manufacturers to write drivers for each operating system that are compliant with standard specifications, and enable interoperability between implementations which shortens testing and qualification cycles.
Performance relating to processing of commands received according to an SSD interface protocol can be measured in different ways, including throughput and latency. Throughput measures how much work the controller can perform in a unit time, such as a computing cycle. For example, throughput can measure how much data the host and/or controller can transfer over an interface in a given amount of time. Higher throughput generally improves performance. Latency measures how much delay exists between transmission of a command or data from the host, to completion of the command by the controller. Lower latency generally also improves performance.